home *** CD-ROM | disk | FTP | other *** search
/ Amiga Plus 2002 #11 / Amiga Plus CD - 2002 - No. 11.iso / Tools / Development / PowerD / Pdmod / modules / sys / stat.m < prev    next >
Encoding:
Text File  |  2002-10-28  |  3.3 KB  |  89 lines

  1. /*
  2. **      $Filename: sys/stat.h $
  3. **      $Release$
  4. **      $Revision: 3.4 $
  5. **      $Date: 1994/05/02 19:25:39 $
  6. **
  7. **      Unix-compatible stat() definitions for SAS/C
  8. **
  9. **      Copyright © 1993,1994 AmiTCP/IP Group, <AmiTCP-Group@hut.fi>
  10. **                  Helsinki University of Technology, Finland.
  11. **                  All rights reserved.
  12. */
  13.  
  14. OBJECT __stat
  15.     st_dev:ULONG,         /* unique device id */
  16.     st_ino:ULONG,         /* inode of file (key block) */
  17.     st_mode:UWORD,        /* Unix style mode */
  18.     st_nlink:UWORD,       /* number of links (unimplemented) */
  19.     st_uid:LONG,         /* owner's user ID */
  20.     st_gid:LONG,         /* owner's group ID */
  21.     st_rdev:ULONG,        /* special file ID (unimplemented) */
  22.     st_size:LONG,        /* file size */
  23.     st_atime:LONG,       /* Time of last access */
  24.     st_mtime:LONG,       /* Last modification time */
  25.     st_ctime:LONG,       /* Last file status change time */
  26.     st_blksize:LONG,     /* Size of disk block */
  27.     st_blocks:LONG,      /* Size in blocks */
  28.     st_dosmode:LONG,     /* DOS protection bits */
  29.     st_type:WORD,        /* DOS file type */
  30.     st_comment:PTR TO BYTE     /* DOS file comment */
  31.  
  32.  
  33.  
  34. #define S_ISUID 0004000         /* set user id on execution */
  35. #define S_ISGID 0002000         /* set group id on execution */
  36. #define S_ISVTX 0001000         /* save swapped text even after use */
  37.  
  38. #define S_IRWXU 0000700         /* RWX mask for owner */
  39. #define S_IRUSR 0000400         /* R for owner */
  40. #define S_IWUSR 0000200         /* W for owner */
  41. #define S_IXUSR 0000100         /* X for owner */
  42.  
  43. #define S_IREAD         S_IRUSR
  44. #define S_IWRITE        S_IWUSR
  45. #define S_IEXEC         S_IXUSR
  46.  
  47. #define S_IRWXG 0000070         /* RWX mask for group */
  48. #define S_IRGRP 0000040         /* R for group */
  49. #define S_IWGRP 0000020         /* W for group */
  50. #define S_IXGRP 0000010         /* X for group */
  51.  
  52. #define S_IRWXO 0000007         /* RWX mask for other */
  53. #define S_IROTH 0000004         /* R for other */
  54. #define S_IWOTH 0000002         /* W for other */
  55. #define S_IXOTH 0000001         /* X for other */
  56.  
  57. #define S_IFMT   0170000        /* type of file */
  58. #define S_IFCHR  0020000        /* character special */
  59. #define S_IFDIR  0040000        /* directory */
  60. #define S_IFBLK  0060000        /* block special */
  61. #define S_IFREG  0100000        /* regular */
  62. #define S_IFLNK  0120000        /* symbolic link */
  63. #define S_IFSOCK 0140000        /* socket */
  64. #define S_IFIFO  0010000        /* named pipe (fifo) */
  65.  
  66. #define S_BLKSIZE       512     /* block size used in the stat struct */
  67.  
  68. #define S_ISDIR(m)      ((m & 0170000) = 0040000)      /* directory */
  69. #define S_ISCHR(m)      ((m & 0170000) = 0020000)      /* char special */
  70. #define S_ISBLK(m)      ((m & 0170000) = 0060000)      /* block special */
  71. #define S_ISREG(m)      ((m & 0170000) = 0100000)      /* regular file */
  72. #define S_ISLNK(m)      ((m & 0170000) = 0120000)      /* symbolic link */
  73. #define S_ISFIFO(m)     ((m & 0170000) = 0010000)      /* fifo */
  74. #define S_ISSOCK(m)     ((m & 0170000) = 0140000)      /* socket */
  75.  
  76. /*
  77. mode_t umask(mode_t);
  78. int __chmod(const char *, int);
  79. int __fstat(int, struct __stat *);
  80. int __stat(const char *, struct __stat *);
  81. int __lstat(const char *, struct __stat *);
  82.  
  83. #define chmod __chmod
  84. #define fstat __fstat
  85. #define stat  __stat
  86. #define lstat __lstat
  87. */
  88.  
  89.